#include "stm32f10x.h"                  // Device header
#include "OLED.h"
#include "Delay.h"


int main(void)
{
	OLED_Init();

	OLED_ShowString(1, 1, "IWDG Test");
	//以下用来观察是看门狗复位还是复位键复位
	if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) == SET)
	{
		RCC_ClearFlag();							// 清除看门狗复位标志位 因为这个标志位不会自动清除
		OLED_ShowString(2, 1, "IWDG");				// 看门狗复位
		Delay_ms(1000);
		OLED_ShowString(2, 1, "    ");
	}
	else
	{
		OLED_ShowString(2, 1, "RST");				// 复位键复位
		Delay_ms(1000);
		OLED_ShowString(2, 1, "   ");
	}

	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);	// 使能对寄存器IWDG_PR和IWDG_RLR的写操作
	IWDG_SetPrescaler(IWDG_Prescaler_16);			// 设置IWDG预分频值为16
	IWDG_SetReload(2500 - 1);						// 设置IWDG重装载值为2500，即2500*16*0.025 = 1000ms
	IWDG_ReloadCounter();							// 喂狗
	IWDG_Enable();									

	while (1)
	{
		// 每隔100ms喂狗一次
		OLED_ShowString(3, 1, "Feed Dog");
		Delay_ms(800);
		OLED_ShowString(3, 1, "        ");
		Delay_ms(100);
		IWDG_ReloadCounter();
	}
}
